package Work20241108;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author zdl
 * @date 2024/11/8
 */
public class Demo6 {
    public static void main(String[] args) {
        /**
         * 邱哥去参加今年歌唱比奖,有8个评委打分,(去掉1个最低分,1个最高分)求平均分?
         * - 定义数组,存储8个数
         * - 遍历数组的同时(找最大值,找最小值,求和)
         * - avg = (和-最大值-最小值)/数组长度-2
         */

        Scanner sc = new Scanner(System.in);
        int[] arr = new int[8];
        int minIndex = 0;
        int maxIndex = 0;
        for (int i = 0; i < arr.length; i++) {
            System.out.println("请第"+(i+1)+"位评委打分:");
            int num = sc.nextInt();
            arr[i] = num;
            if (arr[minIndex] > arr[i]){
                minIndex = i; //最小值下标
            }
        }
//        System.out.println(arr[minIndex]);
//        System.out.println(arr[maxIndex]);
        System.out.println("原arr数组："+Arrays.toString(arr));
        for (int i = minIndex; i < arr.length -1; i++) {//从minIndex下标开始之后的值前移
            arr[i] = arr[i+1];
        }

        int[] arr_1 = new int[arr.length-1];    //定义新数组，接收移除后的数组
        for (int i = 0; i < arr_1.length; i++) {
            arr_1[i] = arr[i];
        }
        System.out.println("移除最小值后的数组："+Arrays.toString(arr_1));

        //以移除最小值后的数组arr_1为基础，移除最大值
        /**
         * i =2 2<2 false
         * i=0 0<2
         *      a2[0]= arr[0]
         */
        for (int i = 0; i < arr_1.length; i++) { //找到arr_1数组中最大值下标
            if(arr_1[maxIndex] < arr_1[i]){
                maxIndex = i;
            }
        }
        for (int i = maxIndex; i < arr_1.length ; i++) {//从maxIndex下标开始之后的值前移
            arr[i] = arr[i+1];
        }
        int[] arr_2 = new int[arr_1.length-1];   //定义新数组，接收移除后的数组
        for (int i = 0; i < arr_1.length-1; i++) {
            arr_2[i] = arr[i];
        }
        System.out.println("去除arr_1中的最大值："+Arrays.toString(arr_2));
        int sum = 0;
        for (int i = 0; i < arr_2.length; i++) {
            sum += arr_2[i];
        }
        double avg = sum * 1.0 / (arr_2.length-2);
        System.out.println("去掉一个最低分，一个最高分。你的平均成绩为："+avg);
    }
}
